package net.scribblemedia.candle.mlengine.training;

import java.util.List;

import org.encog.engine.network.activation.ActivationFunction;
import org.joda.time.DateMidnight;

public class NetworkTrainingBean {
	private int numberOfNetworks;
	private int maxHiddenLayers;
	private int minHiddenLayers;
	private int maxTrainingSymbols;
	private int minTrainingSymbols;
	private int minNeuronsPerLayer;
	private int maxNeuronsPerLayer;
	private int minTailSizeDays;
	private int maxTailSizeDays;
	private int minNoseSizeDays;
	private int maxNoseSizeDays;
	private int minEndOfNoseGainPeriodDays;
	private int maxEndOfNoseGainPeriodDays;
	private double minMinimumGainPercentage;
	private double maxMinimumGainPercentage;
	private double minFlatGainThresholdPercentage;
	private double maxFlatGainThresholdPercentage;
	private double minMaxErrorRatePercentage;
	private double maxMaxErrorRatePercentage;
	private List<? extends ActivationFunction> activationFunctions;
	private int minimumTrainingDataPeriodDays;
	private DateMidnight earliestTrainingDate;
	private DateMidnight latestTrainingDate;

	public int getNumberOfNetworks() {
		return numberOfNetworks;
	}

	public void setNumberOfNetworks(int numberOfNetworks) {
		this.numberOfNetworks = numberOfNetworks;
	}

	public int getMaxHiddenLayers() {
		return maxHiddenLayers;
	}

	public void setMaxHiddenLayers(int maxHiddenLayers) {
		this.maxHiddenLayers = maxHiddenLayers;
	}

	public int getMaxTrainingSymbols() {
		return maxTrainingSymbols;
	}

	public void setMaxTrainingSymbols(int maxTrainingSymbols) {
		this.maxTrainingSymbols = maxTrainingSymbols;
	}

	public int getMinNeuronsPerLayer() {
		return minNeuronsPerLayer;
	}

	public void setMinNeuronsPerLayer(int minNeuronsPerLayer) {
		this.minNeuronsPerLayer = minNeuronsPerLayer;
	}

	public int getMaxNeuronsPerLayer() {
		return maxNeuronsPerLayer;
	}

	public void setMaxNeuronsPerLayer(int maxNeuronsPerLayer) {
		this.maxNeuronsPerLayer = maxNeuronsPerLayer;
	}

	public int getMinTailSizeDays() {
		return minTailSizeDays;
	}

	public void setMinTailSizeDays(int minTailSizeDays) {
		this.minTailSizeDays = minTailSizeDays;
	}

	public int getMaxTailSizeDays() {
		return maxTailSizeDays;
	}

	public void setMaxTailSizeDays(int maxTailSizeDays) {
		this.maxTailSizeDays = maxTailSizeDays;
	}

	public int getMinNoseSizeDays() {
		return minNoseSizeDays;
	}

	public void setMinNoseSizeDays(int minNoseSizeDays) {
		this.minNoseSizeDays = minNoseSizeDays;
	}

	public int getMaxNoseSizeDays() {
		return maxNoseSizeDays;
	}

	public void setMaxNoseSizeDays(int maxNoseSizeDays) {
		this.maxNoseSizeDays = maxNoseSizeDays;
	}

	public int getMinEndOfNoseGainPeriodDays() {
		return minEndOfNoseGainPeriodDays;
	}

	public void setMinEndOfNoseGainPeriodDays(int minEndOfNoseGainPeriodDays) {
		this.minEndOfNoseGainPeriodDays = minEndOfNoseGainPeriodDays;
	}

	public int getMaxEndOfNoseGainPeriodDays() {
		return maxEndOfNoseGainPeriodDays;
	}

	public void setMaxEndOfNoseGainPeriodDays(int maxEndOfNoseGainPeriodDays) {
		this.maxEndOfNoseGainPeriodDays = maxEndOfNoseGainPeriodDays;
	}

	public double getMinMinimumGainPercentage() {
		return minMinimumGainPercentage;
	}

	public void setMinMinimumGainPercentage(double minMinimumGainPercentage) {
		this.minMinimumGainPercentage = minMinimumGainPercentage;
	}

	public double getMaxMinimumGainPercentage() {
		return maxMinimumGainPercentage;
	}

	public void setMaxMinimumGainPercentage(double maxMinimumGainPercentage) {
		this.maxMinimumGainPercentage = maxMinimumGainPercentage;
	}

	public double getMinFlatGainThresholdPercentage() {
		return minFlatGainThresholdPercentage;
	}

	public void setMinFlatGainThresholdPercentage(
			double minFlatGainThresholdPercentage) {
		this.minFlatGainThresholdPercentage = minFlatGainThresholdPercentage;
	}

	public double getMaxFlatGainThresholdPercentage() {
		return maxFlatGainThresholdPercentage;
	}

	public void setMaxFlatGainThresholdPercentage(
			double maxFlatGainThresholdPercentage) {
		this.maxFlatGainThresholdPercentage = maxFlatGainThresholdPercentage;
	}

	public List<? extends ActivationFunction> getActivationFunctions() {
		return activationFunctions;
	}

	public void setActivationFunctions(
			List<? extends ActivationFunction> activationFunctions) {
		this.activationFunctions = activationFunctions;
	}

	public int getMinimumTrainingDataPeriodDays() {
		return minimumTrainingDataPeriodDays;
	}

	public void setMinimumTrainingDataPeriodDays(
			int minimumTrainingDataPeriodDays) {
		this.minimumTrainingDataPeriodDays = minimumTrainingDataPeriodDays;
	}

	public DateMidnight getEarliestTrainingDate() {
		return earliestTrainingDate;
	}

	public void setEarliestTrainingDate(DateMidnight earliestTrainingDate) {
		this.earliestTrainingDate = earliestTrainingDate;
	}

	public DateMidnight getLatestTrainingDate() {
		return latestTrainingDate;
	}

	public void setLatestTrainingDate(DateMidnight latestTrainingDate) {
		this.latestTrainingDate = latestTrainingDate;
	}

	public int getMinHiddenLayers() {
		return minHiddenLayers;
	}

	public void setMinHiddenLayers(int minHiddenLayers) {
		this.minHiddenLayers = minHiddenLayers;
	}

	public int getMinTrainingSymbols() {
		return minTrainingSymbols;
	}

	public void setMinTrainingSymbols(int minTrainingSymbols) {
		this.minTrainingSymbols = minTrainingSymbols;
	}

	public double getMinMaxErrorRatePercentage() {
		return minMaxErrorRatePercentage;
	}

	public void setMinMaxErrorRatePercentage(double minMaxErrorRatePercentage) {
		this.minMaxErrorRatePercentage = minMaxErrorRatePercentage;
	}

	public double getMaxMaxErrorRatePercentage() {
		return maxMaxErrorRatePercentage;
	}

	public void setMaxMaxErrorRatePercentage(double maxMaxErrorRatePercentage) {
		this.maxMaxErrorRatePercentage = maxMaxErrorRatePercentage;
	}
}
